iT邦幫忙

2022 iThome 鐵人賽

DAY 3
0
AI & Data

機器學習與資料視覺化的筆記[R、Python]系列 第 3

Day 3. R、Python在資料分析時常常使用到的基礎語法和指令

  • 分享至 

  • xImage
  •  

R、Python在資料分析時常常使用到的基礎語法和指令

  • R
    • 載入套件
    • 載入資料、輸出資料、輸出圖片
    • 建立資料、Dataframe
    • R 常用的函式示範
  • R、Python 常用函式對照
  • Python
    • 載入套件
    • 載入、輸出資料
    • 建立資料 DataFrame
    • Python 常用的套件

R 和 Python 的語法在做資料分析時,有許多相似,但又有些微的不同的地方。所以今天的筆記我將整理一些常常重複使用到的指令,希望對大家也有幫助~


R

  • 載入套件
  • 載入資料、輸出資料、輸出圖片
  • 建立資料、Dataframe
  • R 常用的函式示範

載入套件

有兩種輸入指令方式:

library()
require() 

載入、輸出資料

不確定當前 R 的工作檔案路徑時,可以執行getwd() 查看、確認路徑。

  • 載入資料(csv, txt檔)
#不直接寫出路徑,file.choose()會彈出視窗挑選檔案
read.table(file.choose(), header = TRUE) # 讀取txt檔
read.csv(file.choose(), header = TRUE) # 讀取csv檔
#寫出路徑的讀檔方式
read.csv("C:/Users/User/Desktop/output.csv", header = TRUE) # header = TRUE保留第一列(變數名稱)
  • 載入統計軟體資料(.dta, .sav, .xport檔)
library(foreign)
read.dta(...) # dta檔,,為Stata的資料
read.spss(..., to.data.frame=TRUE) # sav檔,為SPSS的資料
read.xport(...) # xport檔,為SAS的資料(需在SAS轉為transport資料 再用 R 讀取)
  • 輸出資料
    將檔案output_data,輸出為output.csv csv檔。
#2種不同路徑寫法
write.csv(output_data,"C:/Users/User/Desktop/output.csv")
write.csv(output_data,"C:\\Users\\User\\Desktop\\output.csv")
#row.names 不顯示Index
write.csv(output_data,"C:/Users/User/Desktop/output.csv",row.names = FALSE)

⇒ R 語言裡編寫路徑時斜線有2種不同的寫法,包括/\\

  • 輸出圖片(Pdf)
pdf("my_plot.pdf")
pdf("my_plot.pdf",         # File name
    width = 8, height = 7, # Width and height in inches
    bg = "white",          # Background color
    colormodel = "cmyk"    # Color model (cmyk)
    paper = "A4")          # Paper size

#Plot作圖
plot(rnorm(50))

#Close device
dev.off() 
  • 輸出圖片(PNG/JPEG/BMP)
#不同device
png("my_plot.png")
jpeg("my_plot.jpeg", quality = 75)
bmp("my_plot")

#Plot作圖
plot(rnorm(50))

#Close device
dev.off()

建立資料、Dataframe

  • seq( )序列
  • list( )串列
  • matrix( )矩陣
  • data.frame( )
#seq()
seq(1:10) # sequence序列
#list()
list(2, 4, 6) # 串列

#matrix
M <- matrix (data = c(1, 2, 3, 4), nrow = 2, ncol = 2)  # R matrix內的元素排列 by column.
M_byrow <- matrix (data = c(1, 2, 3, 4), nrow = 2, ncol = 2, byrow=T)) # R matrix內的元素排列 by row. (byrow=True)

#data.frame
data.frame(
    col_a=c(a1,a2,a3),
    col_b=c(b1,b2,b3),
    col_c=c(c1,c2,c3)
    )

R 常用的函式示範

  • for (i in 1:n){ }
  • if( ){ }else if( ){ }else{ }
  • function_name<-function(input){ }
#輸出1到10
for (i in 1:10){
print(i)
}

#輸出1到10中,大於5的數字
for (i in 1:10){
    if(i>5){
        print(i)
    }
}

#自訂名為 fun_print_num 的函數,輸出數字1到n中,大於5的數字。
fun_print_num<-function(n){
    for (i in 1:n){
        if(i>5){
             print(i)
        }
    } 
}
fun_print_num(10) #輸出數字1到 n=10中,大於5的數字。

R、Python 常用函式對照

常見數學運算 R Python
加減乘除
餘數 %% %
四捨五入 round(num,digits=小數位數) round(num,小數位數)
平方根 sqrt() np.sqrt()
絕對值 asb() asb()
次方 ^ ** **
exp() exp() np.exp()
執行動作 R Python
判斷條件 if(){}else if(){}else{} if : elif : else :
重複執行 while(){} while : (break continue) else:
重複迭代 for(i in 1:n){} for in : for in range(len(df)):
自訂函式 function_name<-function(input){} def function_name(): return
長度 length len
物件類型 class() type()
尋找物件位置 match()``````which(物件==) 物件.index()
排序 sort``````order(df,decreasing=F) .sort() sorted()

Python

  • 載入套件
  • 載入、輸出資料
  • 建立資料 DataFrame
  • Python 常用的套件

載入套件

# 從套件(Package)裡導入模組(Module),然後命名為 mdl。
from Package import Module as mdl 
mdl.function() # 執行mdl模組裡的function()

載入、輸出資料

我們可以用Pandas 套件讀取不同類型的資料檔,並轉成DataFrame:

  • 載入資料(excel, csv, txt檔)
import pandas as pd
pd.read_excel(r'C:\Users\user\Desktop\....xlsx')# excel檔
pd.read_csv(r'C:\Users\user\Desktop\....csv')   # csv檔
pd.read_table(r'C:\Users\user\Desktop\....txt') # txt檔
  • 載入統計軟體資料(.dta, .sav, .xport檔)
pd.read_stata(...) # dta檔,,為Stata的資料
pd.read_sas(...) # xport檔,為SAS的資料
  • 輸出csv檔:
data.to_csv(r'C:\Users\user\Desktop\....csv')   # csv檔

建立資料集 DataFrame

自己建立DataFrame:

  • pd.DataFrame( )
pd.DataFrame({
    'col_a':['a1','a2','a3'],
    'col_b':range(3),
    'col_c':[0,1,2]
})

Python 常用的套件

套件 用處
math 數學函式(階乘、三角函數、角座標...)
Numpy 資料結構運算(陣列)、計算線性方程、抽取特定分布樣本
SciPy 數學、統計函式
SciKit-learn 統計(預測)、機器學習(建模、分群、分類...)
statsmoddels 統計(推斷)
Pandas 數據科學、資料分析(Dataframe)

參考網站、書籍

R CODER
https://r-coder.com/save-plot-r/

蔡佳泓(2014). 基礎統計分析:R程式在社會科學之應用. 雙葉書廊.

Wes McKinney (2015)."Python for data analysis". 2nd Edition. O'Reilly.


上一篇
Day 2. Python 環境建置
下一篇
Day 4. 資料分析流程、探索式資料分析 (EDA) [R]
系列文
機器學習與資料視覺化的筆記[R、Python]30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
obarisk
iT邦研究生 1 級 ‧ 2022-09-14 17:52:19

path 最保險還是用 normalizePath 配合 raw string

比如

normalizePath(r"(C:\User\R)")

我要留言

立即登入留言